﻿Public Class frmUsuario

    Private Sub frmUsuario_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
        frmuser = False
    End Sub

    Private Sub frmUsuario_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ''Limitamos el maximo dia de nacimiento a HOY
        MonthCalendar1.MaxDate = Now()

        ''Cargar COMBO CREAR USUARIO con los TIPOS DE USUARIO
        cmbTipoUsuarioCU.DataSource = cU.mtdTipoUsuario.Tables("UsuarioTipo")
        cmbTipoUsuarioCU.DisplayMember = "tipo_UsuarioTipo"
        cmbTipoUsuarioCU.ValueMember = "codigo_UsuarioTipo" 'No carga el valor del campo, sino el nombre del campo ¿why?
        cmbTipoUsuarioCU.SelectedIndex = 1 'En array: Administrador(0), Tecnico de Laboratorio (1)

        ''Cargar COMBO GESTIONAR USUARIO con los TIPOS DE USUARIO
        cmbTipoUsuarioGU.DataSource = cU.mtdTipoUsuario.Tables("UsuarioTipo")
        cmbTipoUsuarioGU.DisplayMember = "tipo_UsuarioTipo"
        cmbTipoUsuarioGU.ValueMember = "codigo_UsuarioTipo" 'No carga el valor del campo, sino el nombre del campo ¿why?

        ''Cargar COMBO en LISTAR USUARIO con los LISTADOS DE TIPO DE USUARIO
        cmbTipoUsuarioListado.DataSource = cU.mtdTipoUsuario.Tables("UsuarioTipo")
        cmbTipoUsuarioListado.DisplayMember = "tipo_UsuarioTipo"
        cmbTipoUsuarioListado.ValueMember = "codigo_UsuarioTipo" 'No carga el valor del campo, sino el nombre del campo ¿why?

        ''Datos de Red para Auditoria
        cU.ipAuditoria = ip
        cU.pcAuditoria = pc
        cU.usuariopcAuditoria = usuariopc
    End Sub

    Private Sub btnAgregarFecha_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAgregarFechaCU.Click
        txtFecNacimientoCU.Text = MonthCalendar1.SelectionStart.Date()
    End Sub

    Private Sub btnCrearUsuario_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCrearUsuario.Click
        ''Usuario Autogenerado
        'Dim nombre As String = txtNombreCU.Text
        'Dim apepaterno As String = txtApePaternoCU.Text
        'Dim apematerno As String = txtApeMaternoCU.Text
        'Dim nom1(), ap(), am(), nom2 As String
        'nom1 = LTrim(nombre).Split(" ") 'Array con la(s) palabra(s) ingresada(s).
        'nom2 = nom1(0).Substring(0, 1)
        'ap = LTrim(apepaterno).Split(" ") 'Array con la(s) palabra(s) ingresada(s).
        'am = LTrim(apematerno).Split(" ") 'Array con la(s) palabra(s) ingresada(s).
        'nombre = nom2 + ap(0) + am(0)
        'txtUsuarioCU.Text = nombre

        'Contraseña Aleatoria (2 letras mayusculas + 2 numeros + 2 letras minusculas + 2 numeros)
        Dim num1, num2, letraMayuscula, letraMinuscula As String
        Dim c As Integer
        Dim z As Integer = 2
        Dim contrasenia As String = ""
        Dim random As New Random
        For c = 1 To z
            'Genero numeros
            num1 = random.Next(0, 10) 'valor que puede ser igual o mayor que el 1er argumento (0) y menor que el 2do (10)
            num2 = random.Next(0, 10) 'valor que puede ser igual o mayor que el 1er argumento (0) y menor que el 2do (10)
            'ALEATORIO a(97) - z(122), que sera convertido a LETRA (chr()) y que sera transformado a MAYUSCULA (UCase())
            letraMayuscula = UCase(Chr(random.Next(97, 123)))
            'ALEATORIO a(97) - z(122), que sera convertido a LETRA (chr()) y que sera transformado a MINUSCULA (LCase())
            letraMinuscula = LCase(Chr(random.Next(97, 123))) 'Permitira crear letra a-z
            'Para luego crear la contraseña
            contrasenia = contrasenia + letraMayuscula + num1 + letraMinuscula + num2
        Next

        cU.usuarioUsuario = LCase(LTrim(txtUsuarioCU.Text)) 'Quitar espacios de la izquierda
        cU.contraseniaUsuario = contrasenia
        cU.nombreUsuario = LTrim(txtNombreCU.Text) 'Quitar espacios de la izquierda
        cU.apepaternoUsuario = LTrim(txtApePaternoCU.Text) 'Quitar espacios de la izquierda
        cU.apematernoUsuario = LTrim(txtApeMaternoCU.Text) 'Quitar espacios de la izquierda
        cU.dniUsuario = LTrim(txtDniCU.Text) 'Quitar espacios de la izquierda
        cU.fecnacimientoUsuario = MonthCalendar1.SelectionStart.Date().ToString("yyyy-MM-dd")
        cU.tipoUsuario = (cmbTipoUsuarioCU.SelectedIndex + 1) 'SelectedIndex nos da el indice del valor seleccionado, +1 porque el array inicia en 0
        ''Datos para Auditoria
        cU.campoAuditoria = "Usuario | Contraseña | Nombres | Apellido Paterno | Apellido Materno | Dni | Fecha de Nacimiento | Tipo de Usuario"
        cU.valantiguoAuditoria = ""
        cU.valnuevoAuditoria = cU.usuarioUsuario + " | " + cU.contraseniaUsuario + " | " + cU.nombreUsuario + " | " + cU.apepaternoUsuario + " | " + cU.apematernoUsuario + " | " + cU.dniUsuario + " | " + CStr(cU.fecnacimientoUsuario) + " | " + CStr(cU.tipoUsuario)
        ''Validamos el ancho del campo DNI 
        If (txtDniCU.Text.Length <> 8) Then
            MsgBox("El campo DNI debe tener 8 digitos")
        Else
            If (cU.mtdCrearUsuario()) Then
                'Opciones de visualizacion de la contraseña
                lblUsuarioCU.Visible = True
                txtContraseñaCU.Visible = True
                btnCopiarContraseñaCU.Visible = True
                'Usuario y Contraseña
                lblUsuarioCU.Text = "La contraseña de " + vbCrLf + UCase(txtUsuarioCU.Text) + " es: "
                txtContraseñaCU.Text = contrasenia
                'Visualizar datos sin poder modificarlos
                txtUsuarioCU.Enabled = False
                txtNombreCU.Enabled = False
                txtApePaternoCU.Enabled = False
                txtApeMaternoCU.Enabled = False
                txtDniCU.Enabled = False
                txtFecNacimientoCU.Enabled = False
                'Reinicar Formulario
                btnCrearUsuario.Visible = False
                btnNuevoUsuarioCU.Visible = True
                MsgBox("El usuario " + vbCrLf + txtUsuarioCU.Text + vbCrLf + "han sido creado")
            Else
                ''Reinicar Formulario
                txtUsuarioCU.ResetText() 'Solo REINICIO el valor del usuario
                'txtNombreCU.ResetText()
                'txtApePaternoCU.ResetText()
                'txtApeMaternoCU.ResetText()
                txtDniCU.ResetText() 'Solo REINICIO el valor del DNI 
                'txtFecNacimientoCU.ResetText()
                'cmbTipoUsuarioCU.SelectedIndex = 1 'En array: Administrador(0), Tecnico de Laboratorio (1)
            End If
        End If
    End Sub

    Private Sub btnCambiarContraseña_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCambiarContraseñaGU.Click
        'Contraseña Aleatoria (2 letras mayusculas + 2 numeros + 2 letras minusculas + 2 numeros)
        Dim num1, num2, letraMayuscula, letraMinuscula As String
        Dim c As Integer
        Dim z As Integer = 2
        Dim contrasenia As String = ""
        Dim random As New Random
        For c = 1 To z
            'Genero numeros
            num1 = random.Next(0, 10) 'valor que puede ser igual o mayor que el 1er argumento (0) y menor que el 2do (10)
            num2 = random.Next(0, 10) 'valor que puede ser igual o mayor que el 1er argumento (0) y menor que el 2do (10)
            'ALEATORIO a(97) - z(122), que sera convertido a LETRA (chr()) y que sera transformado a MAYUSCULA (UCase())
            letraMayuscula = UCase(Chr(random.Next(97, 123)))
            'ALEATORIO a(97) - z(122), que sera convertido a LETRA (chr()) y que sera transformado a MINUSCULA (LCase())
            letraMinuscula = LCase(Chr(random.Next(97, 123))) 'Permitira crear letra a-z
            'Para luego crear la contraseña
            contrasenia = contrasenia + letraMayuscula + num1 + letraMinuscula + num2
        Next
        'Opcion de copiar contraseña
        lblUsuarioGU.Visible = True
        txtContraseñaGU.Visible = True
        btnCopiarContraseñaGU.Visible = True
        'Usuario y Contraseña
        lblUsuarioGU.Text = "La contraseña de " + vbCrLf + UCase(txtUsuarioGU.Text) + " es: "
        txtContraseñaGU.Text = contrasenia
    End Sub

    Private Sub txtUsuarioCU_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtUsuarioCU.KeyPress
        'Validacion -> Ingreso de datos SOLO LETRAS
        If Char.IsLetter(e.KeyChar) Then
            e.Handled = False
        ElseIf Char.IsControl(e.KeyChar) Then
            e.Handled = False
            'ElseIf Char.IsSeparator(e.KeyChar) Then
            'e.Handled = False
        Else
            e.Handled = True
        End If
        ''Tabulacion
        If e.KeyChar = ChrW(Keys.Enter) Then
            e.Handled = True
            SendKeys.Send("{TAB}")
        End If
    End Sub

    Private Sub btnCopiarContraseñaCU_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCopiarContraseñaCU.Click
        If txtContraseñaCU.SelectionLength = 0 Then
            'Copia la selección actual; por lo tanto, si no hay selección, selecciona todo
            txtContraseñaCU.SelectAll()
        End If
        'Copiamos la selección en el portapapeles
        txtContraseñaCU.Copy()
        MessageBox.Show("Contraseña, te tengo!", "Portapapeles dice: ")
        'Opcion de copiar contraseña
        btnCopiarContraseñaCU.Visible = False
        txtContraseñaCU.Visible = False
        'Reiniciar contenedores
        lblUsuarioCU.ResetText()
        txtContraseñaCU.ResetText()
    End Sub

    Private Sub tabCrearUsuario_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles pstCrearUsuario.Click

    End Sub

    Private Sub tabGestionarUsuario_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles pstGestionarUsuario.Click

    End Sub

    Private Sub btnCopiarContraseñaGU_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCopiarContraseñaGU.Click
        If txtContraseñaGU.SelectionLength = 0 Then
            'Copia la selección actual; por lo tanto, si no hay selección, selecciona todo
            txtContraseñaGU.SelectAll()
        End If
        'Copiamos la selección en el portapapeles
        txtContraseñaGU.Copy()
        MessageBox.Show("Contraseña, te tengo!", "Portapapeles dice: ")
    End Sub


    Private Sub btnActualizarUsuario_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnActualizarUsuario.Click
        ''Datos para Auditoria
        cU.campoAuditoria = "Usuario | Contraseña | Nombres | Apellido Paterno | Apellido Materno | Dni | Fecha de Nacimiento | Estado | Tipo de Usuario"
        cU.valantiguoAuditoria = cU.usuarioUsuario + " | " + cU.contraseniaUsuario + " | " + cU.nombreUsuario + " | " + cU.apepaternoUsuario + " | " + cU.apematernoUsuario + " | " + cU.dniUsuario + " | " + CStr(cU.fecnacimientoUsuario) + " | " + CStr(cU.estadoUsuario) + " | " + CStr(cU.tipoUsuario)
        cU.valnuevoAuditoria = txtUsuarioGU.Text + " | " + txtContraseñaGU.Text + " | " + txtNombreGU.Text + " | " + txtApePaternoGU.Text + " | " + txtApeMaternoGU.Text + " | " + txtDniGU.Text + " | " + txtFecNacimientoGU.Text + " | " + CStr(cmbEstadoUsuarioGU.SelectedIndex) + " (" + cmbEstadoUsuarioGU.Text + ")" + " | " + CStr(cmbTipoUsuarioGU.SelectedIndex + 1) + " (" + cmbTipoUsuarioGU.Text + ")"
        ''Cargamos los datos a la clase
        cU.usuarioUsuario = LCase(LTrim(txtUsuarioGU.Text)) 'Quitar espacios de la izquierda
        cU.contraseniaUsuario = txtContraseñaGU.Text
        cU.nombreUsuario = LTrim(txtNombreGU.Text) 'Quitar espacios de la izquierda
        cU.apepaternoUsuario = LTrim(txtApePaternoGU.Text) 'Quitar espacios de la izquierda
        cU.apematernoUsuario = LTrim(txtApeMaternoGU.Text) 'Quitar espacios de la izquierda
        cU.dniUsuario = LTrim(txtDniGU.Text) 'Quitar espacios de la izquierda
        cU.fecnacimientoUsuario = MonthCalendar2.SelectionStart.Date().ToString("yyyy-MM-dd")
        cU.estadoUsuario = cmbEstadoUsuarioGU.SelectedIndex
        cU.tipoUsuario = (cmbTipoUsuarioGU.SelectedIndex + 1) 'SelectedIndex nos da el indice del valor seleccionado, +1 porque el array inicia en 0
        ''Ejecutamos el metodo
        If (cU.mtdModificarUsuario()) Then
            ''Mensaje de Confirmacion
            MsgBox("Los datos del usuario " + vbCrLf + txtUsuarioGU.Text + vbCrLf + "han sido actualizados")
        Else
            'Reinicar Formulario
            txtUsuarioGU.ResetText()
            txtNombreGU.ResetText()
            txtApePaternoGU.ResetText()
            txtApeMaternoGU.ResetText()
            txtDniGU.ResetText()
            txtFecNacimientoGU.ResetText()
            cmbTipoUsuarioGU.SelectedIndex = 1 'En array: Administrador(0), Tecnico de Laboratorio (1)
        End If
    End Sub

    Private Sub btnBuscarUsuario_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBuscarUsuarioGU.Click
        cU.usuarioUsuario = LCase(LTrim(txtUsuarioGU.Text)) 'Quitar espacios de la izquierda
        If (cU.mtdBuscarUsuario()) Then
            'Bloquear busqueda de usuario
            txtUsuarioGU.Enabled = False
            btnBuscarUsuarioGU.Visible = False
            'Mostrar contenedores
            lblNombreGU.Visible = True
            txtNombreGU.Visible = True
            lblApePaternoGU.Visible = True
            txtApePaternoGU.Visible = True
            lblApeMaternoGU.Visible = True
            txtApeMaternoGU.Visible = True
            lblDniGU.Visible = True
            txtDniGU.Visible = True
            lblFecNacimientoGU.Visible = True
            txtFecNacimientoGU.Visible = True
            lblEstadoUsuarioGU.Visible = True
            cmbEstadoUsuarioGU.Visible = True
            lblTipoUsuarioGU.Visible = True
            cmbTipoUsuarioGU.Visible = True
            MonthCalendar2.Visible = True
            lblCalendarioGU.Visible = True
            btnAgregarFechaGU.Visible = True
            btnCambiarContraseñaGU.Visible = True
            btnActualizarUsuario.Visible = True
            btnNuevaBusquedaGU.Visible = True
            'Opciones de visualizacion de la contraseña
            lblUsuarioGU.Visible = False
            txtContraseñaGU.Visible = False
            btnCopiarContraseñaGU.Visible = False
            'Mostrar informacion
            txtContraseñaGU.Text = cU.contraseniaUsuario
            txtNombreGU.Text = cU.nombreUsuario
            txtApePaternoGU.Text = cU.apepaternoUsuario
            txtApeMaternoGU.Text = cU.apematernoUsuario
            txtDniGU.Text = cU.dniUsuario
            txtFecNacimientoGU.Text = cU.fecnacimientoUsuario
            cmbEstadoUsuarioGU.SelectedIndex = cU.estadoUsuario
            cmbTipoUsuarioGU.SelectedIndex = (cU.codigoUsuarioTipo - 1)
        Else
            txtUsuarioGU.ResetText()
            txtUsuarioGU.Focus()
        End If
    End Sub

    Private Sub btnAgregarFechaGU_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAgregarFechaGU.Click
        txtFecNacimientoGU.Text = MonthCalendar2.SelectionStart.Date()
    End Sub

    Private Sub btnNuevaBusquedaGU_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNuevaBusquedaGU.Click
        'Reestablecer elemento principal de busqueda
        txtUsuarioGU.ResetText()
        txtUsuarioGU.Enabled = True
        'Ocultar informacion y contenedores
        lblNombreGU.Visible = False
        txtNombreGU.Visible = False
        lblApePaternoGU.Visible = False
        txtApePaternoGU.Visible = False
        lblApeMaternoGU.Visible = False
        txtApeMaternoGU.Visible = False
        lblDniGU.Visible = False
        txtDniGU.Visible = False
        lblFecNacimientoGU.Visible = False
        txtFecNacimientoGU.Visible = False
        lblEstadoUsuarioGU.Visible = False
        cmbEstadoUsuarioGU.Visible = False
        lblTipoUsuarioGU.Visible = False
        cmbTipoUsuarioGU.Visible = False
        MonthCalendar2.Visible = False
        lblCalendarioGU.Visible = False
        btnAgregarFechaGU.Visible = False
        btnCambiarContraseñaGU.Visible = False
        btnActualizarUsuario.Visible = False
        btnNuevaBusquedaGU.Visible = False
        'Opciones de visualizacion de la contraseña
        btnBuscarUsuarioGU.Visible = True
        lblUsuarioGU.Visible = False
        txtContraseñaGU.Visible = False
        btnCopiarContraseñaGU.Visible = False
    End Sub

    Private Sub btnNuevoUsuarioCU_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNuevoUsuarioCU.Click
        'Reinicar Formulario
        txtUsuarioCU.ResetText()
        txtNombreCU.ResetText()
        txtApePaternoCU.ResetText()
        txtApeMaternoCU.ResetText()
        txtDniCU.ResetText()
        txtFecNacimientoCU.ResetText()
        cmbTipoUsuarioCU.SelectedIndex = 1 'En array: Administrador(0), Tecnico de Laboratorio (1)
        btnCrearUsuario.Visible = True
        btnNuevoUsuarioCU.Visible = False
        'Opciones de los campos del formulario
        txtUsuarioCU.Enabled = True
        txtNombreCU.Enabled = True
        txtApePaternoCU.Enabled = True
        txtApeMaternoCU.Enabled = True
        txtDniCU.Enabled = True
        txtFecNacimientoCU.ReadOnly = True
        'Opciones de visualizacion de la contraseña
        lblUsuarioCU.Visible = False
        txtContraseñaCU.Visible = False
        btnCopiarContraseñaCU.Visible = False
    End Sub

    Private Sub txtNombreCU_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtNombreCU.KeyPress
        'Validacion -> Ingreso de datos SOLO LETRAS
        If Char.IsLetter(e.KeyChar) Then
            e.Handled = False
        ElseIf Char.IsControl(e.KeyChar) Then
            e.Handled = False
        ElseIf Char.IsSeparator(e.KeyChar) Then
            e.Handled = False
        Else
            e.Handled = True
        End If
        ''Tabulacion
        If e.KeyChar = ChrW(Keys.Enter) Then
            e.Handled = True
            SendKeys.Send("{TAB}")
        End If
    End Sub

    Private Sub txtNombreGU_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtNombreGU.KeyPress
        'Validacion -> Ingreso de datos SOLO LETRAS
        If Char.IsLetter(e.KeyChar) Then
            e.Handled = False
        ElseIf Char.IsControl(e.KeyChar) Then
            e.Handled = False
        ElseIf Char.IsSeparator(e.KeyChar) Then
            e.Handled = False
        Else
            e.Handled = True
        End If
        ''Tabulacion
        If e.KeyChar = ChrW(Keys.Enter) Then
            e.Handled = True
            SendKeys.Send("{TAB}")
        End If
    End Sub

    Private Sub txtNombreGU_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtNombreGU.TextChanged

    End Sub

    Private Sub txtApePaternoCU_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtApePaternoCU.KeyPress
        'Validacion -> Ingreso de datos SOLO LETRAS
        If Char.IsLetter(e.KeyChar) Then
            e.Handled = False
        ElseIf Char.IsControl(e.KeyChar) Then
            e.Handled = False
        ElseIf Char.IsSeparator(e.KeyChar) Then
            e.Handled = False
        Else
            e.Handled = True
        End If
        ''Tabulacion
        If e.KeyChar = ChrW(Keys.Enter) Then
            e.Handled = True
            SendKeys.Send("{TAB}")
        End If
    End Sub

    Private Sub txtApePaternoCU_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtApePaternoCU.TextChanged

    End Sub

    Private Sub txtApePaternoGU_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtApePaternoGU.KeyPress
        'Validacion -> Ingreso de datos SOLO LETRAS
        If Char.IsLetter(e.KeyChar) Then
            e.Handled = False
        ElseIf Char.IsControl(e.KeyChar) Then
            e.Handled = False
        ElseIf Char.IsSeparator(e.KeyChar) Then
            e.Handled = False
        Else
            e.Handled = True
        End If
        ''Tabulacion
        If e.KeyChar = ChrW(Keys.Enter) Then
            e.Handled = True
            SendKeys.Send("{TAB}")
        End If
    End Sub

    Private Sub txtApePaternoGU_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtApePaternoGU.TextChanged

    End Sub

    Private Sub txtApeMaternoCU_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtApeMaternoCU.KeyPress
        'Validacion -> Ingreso de datos SOLO LETRAS
        If Char.IsLetter(e.KeyChar) Then
            e.Handled = False
        ElseIf Char.IsControl(e.KeyChar) Then
            e.Handled = False
        ElseIf Char.IsSeparator(e.KeyChar) Then
            e.Handled = False
        Else
            e.Handled = True
        End If
        ''Tabulacion
        If e.KeyChar = ChrW(Keys.Enter) Then
            e.Handled = True
            SendKeys.Send("{TAB}")
        End If
    End Sub

    Private Sub txtApeMaternoCU_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtApeMaternoCU.TextChanged

    End Sub

    Private Sub txtApeMaternoGU_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtApeMaternoGU.KeyPress
        'Validacion -> Ingreso de datos SOLO LETRAS
        If Char.IsLetter(e.KeyChar) Then
            e.Handled = False
        ElseIf Char.IsControl(e.KeyChar) Then
            e.Handled = False
        ElseIf Char.IsSeparator(e.KeyChar) Then
            e.Handled = False
        Else
            e.Handled = True
        End If
        ''Tabulacion
        If e.KeyChar = ChrW(Keys.Enter) Then
            e.Handled = True
            SendKeys.Send("{TAB}")
        End If
    End Sub

    Private Sub txtApeMaternoGU_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtApeMaternoGU.TextChanged

    End Sub

    Private Sub txtDniCU_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtDniCU.KeyPress
        'Validacion -> Ingreso de datos SOLO NUMEROS
        If Char.IsDigit(e.KeyChar) Then
            e.Handled = False
        ElseIf Char.IsControl(e.KeyChar) Then
            e.Handled = False
        Else
            e.Handled = True
        End If
        ''Tabulacion
        If e.KeyChar = ChrW(Keys.Enter) Then
            e.Handled = True
            SendKeys.Send("{TAB}")
        End If
    End Sub

    Private Sub txtDniCU_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtDniCU.TextChanged

    End Sub

    Private Sub txtDniGU_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtDniGU.KeyPress
        'Validacion -> Ingreso de datos SOLO NUMEROS
        If Char.IsDigit(e.KeyChar) Then
            e.Handled = False
        ElseIf Char.IsControl(e.KeyChar) Then
            e.Handled = False
        Else
            e.Handled = True
        End If
        ''Tabulacion
        If e.KeyChar = ChrW(Keys.Enter) Then
            e.Handled = True
            SendKeys.Send("{TAB}")
        End If
    End Sub

    Private Sub txtDniGU_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtDniGU.TextChanged

    End Sub

    Private Sub frmUsuario_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
        ''Volvemos flexible al contenedor de las pestañas, de esta manera crecerá con el formulario
        tabAdministracionUsuario.Width = Me.Width - 10
        tabAdministracionUsuario.Height = Me.Height - 32
        dgvListarUsuarios.Width = Me.Width - 18
        dgvListarUsuarios.Height = Me.Height - 94
    End Sub

    Private Sub txtUsuarioGU_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtUsuarioGU.KeyPress
        'Validacion -> Ingreso de datos SOLO LETRAS
        If Char.IsLetter(e.KeyChar) Then
            e.Handled = False
        ElseIf Char.IsControl(e.KeyChar) Then
            e.Handled = False
            'ElseIf Char.IsSeparator(e.KeyChar) Then
            'e.Handled = False
        Else
            e.Handled = True
        End If
        ''Tabulacion
        If e.KeyChar = ChrW(Keys.Enter) Then
            e.Handled = True
            SendKeys.Send("{TAB}")
        End If
    End Sub

    Private Sub txtUsuarioGU_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtUsuarioGU.TextChanged

    End Sub

    Private Sub txtUsuarioCU_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtUsuarioCU.TextChanged

    End Sub

    Private Sub cmbTipoUsuarioListado_SelectedValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbTipoUsuarioListado.SelectedValueChanged
        ''Enviar parametro
        cU.tipoUsuario = (cmbTipoUsuarioListado.SelectedIndex + 1)
        ''Listar TODO el Inventario
        dgvListarUsuarios.DataSource = cU.mtdListarTipoUsuario()
        dgvListarUsuarios.AllowUserToAddRows = False
        dgvListarUsuarios.AutoResizeColumns()
        dgvListarUsuarios.AutoResizeRows()
    End Sub

    Private Sub btnMostrarTodo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMostrarTodo.Click
        ''Listar TODO el Inventario
        dgvListarUsuarios.DataSource = cU.mtdListarTodoTipoUsuario()
        dgvListarUsuarios.AllowUserToAddRows = False
        dgvListarUsuarios.AutoResizeColumns()
        dgvListarUsuarios.AutoResizeRows()
    End Sub
End Class